change return type of strip_html, strip_nastyhtml to QString. (#900)
authortsteven4 <13596209+tsteven4@users.noreply.github.com>
Sun, 31 Jul 2022 21:48:04 +0000 (15:48 -0600)
committerGitHub <noreply@github.com>
Sun, 31 Jul 2022 21:48:04 +0000 (15:48 -0600)
defs.h
html.cc
osm.cc
text.cc
util.cc
vcf.cc

diff --git a/defs.h b/defs.h
index be9cc7fb972b0a24d9268aaacf2135fdc41e6256..ef58e39fc49ce76ecdf7e37d9fcae69e093dff29 100644 (file)
--- a/defs.h
+++ b/defs.h
@@ -1081,8 +1081,8 @@ QString gs_get_cachetype(geocache_type t);
 QString gs_get_container(geocache_container t);
 QString xml_entitize(const QString& str);
 QString html_entitize(const QString& str);
-char* strip_html(const utf_string*);
-char* strip_nastyhtml(const QString& in);
+QString strip_html(const utf_string*);
+QString strip_nastyhtml(const QString& in);
 QString convert_human_date_format(const char* human_datef);    /* "MM,YYYY,DD" -> "%m,%Y,%d" */
 QString convert_human_time_format(const char* human_timef);    /* "HH+mm+ss"   -> "%H+%M+%S" */
 QString pretty_deg_format(double lat, double lon, char fmt, const char* sep, bool html);    /* decimal ->  dd.dddd or dd mm.mmm or dd mm ss */
diff --git a/html.cc b/html.cc
index ddf0b81c1df065dedb022cf0159c609182e26bf5..2540095245cbd3e752a130755cc9c0bad2436a59 100644 (file)
--- a/html.cc
+++ b/html.cc
@@ -102,14 +102,14 @@ HtmlFormat::html_disp(const Waypoint* wpt) const
 
   gbfprintf(file_out, "<tr><td colspan=\"2\">");
   if (!wpt->gc_data->desc_short.utfstring.isEmpty()) {
-    char* tmpstr = strip_nastyhtml(wpt->gc_data->desc_short.utfstring);
-    gbfprintf(file_out, "<p class=\"gpsbabeldescshort\">%s</p>\n", tmpstr);
-    xfree(tmpstr);
+    gbfputs(QStringLiteral("<p class=\"gpsbabeldescshort\">%1</p>\n")
+            .arg(strip_nastyhtml(wpt->gc_data->desc_short.utfstring)),
+            file_out);
   }
   if (!wpt->gc_data->desc_long.utfstring.isEmpty()) {
-    char* tmpstr = strip_nastyhtml(wpt->gc_data->desc_long.utfstring);
-    gbfprintf(file_out, "<p class=\"gpsbabeldesclong\">%s</p>\n", tmpstr);
-    xfree(tmpstr);
+    gbfputs(QStringLiteral("<p class=\"gpsbabeldesclong\">%1</p>\n")
+            .arg(strip_nastyhtml(wpt->gc_data->desc_long.utfstring)),
+            file_out);
   }
   if (!wpt->gc_data->hint.isEmpty()) {
     QString hint;
diff --git a/osm.cc b/osm.cc
index b1066117dc69b6fd13fdfe404b8ca70502731f88..b4ba32613cc54e98d262f5db3c605dedafbf48c4 100644 (file)
--- a/osm.cc
+++ b/osm.cc
@@ -406,20 +406,11 @@ OsmFormat::osm_feature_symbol(const int ikey, const char* value) const
   return result;
 }
 
-char*
-OsmFormat::osm_strip_html(const char* str)
-{
-  utf_string utf(true, str);
-  return strip_html(&utf);     // util.cc
-}
-
 QString
 OsmFormat::osm_strip_html(const QString& str)
 {
-  char* r = osm_strip_html(CSTR(str));
-  QString rv(r);
-  xfree(r);
-  return rv;
+  utf_string utf(true, str);
+  return strip_html(&utf);     // util.cc
 }
 
 void
diff --git a/text.cc b/text.cc
index 42fa2b45693b43b96bb826ed817dc5e8969f5e79..7d40e552d7950b131f9f0b793e83bef14af5fc2e 100644 (file)
--- a/text.cc
+++ b/text.cc
@@ -110,14 +110,10 @@ TextFormat::text_disp(const Waypoint* wpt)
             .arg((wpt->gc_data->terr%10) ? ".5" : ""),
             file_out);
     if (!wpt->gc_data->desc_short.utfstring.isEmpty()) {
-      char* stripped_html = strip_html(&wpt->gc_data->desc_short);
-      gbfprintf(file_out, "\n%s\n", stripped_html);
-      xfree(stripped_html);
+      gbfputs(QStringLiteral("\n%1\n").arg(strip_html(&wpt->gc_data->desc_short)), file_out);
     }
     if (!wpt->gc_data->desc_long.utfstring.isEmpty()) {
-      char* stripped_html = strip_html(&wpt->gc_data->desc_long);
-      gbfprintf(file_out, "\n%s\n", stripped_html);
-      xfree(stripped_html);
+      gbfputs(QStringLiteral("\n%1\n").arg(strip_html(&wpt->gc_data->desc_long)), file_out);
     }
     if (!wpt->gc_data->hint.isEmpty()) {
       QString hint;
diff --git a/util.cc b/util.cc
index 41744e2ea833c77c2694742b72f3a5b7680fd863..3eb7ab4b6239cc4a3efb16a05f2ea74b739e4565 100644 (file)
--- a/util.cc
+++ b/util.cc
@@ -1167,7 +1167,7 @@ pretty_deg_format(double lat, double lon, char fmt, const char* sep, bool html)
  * </body> and </html>- stop processing altogether
  * <style> </style> - stop overriding styles for everything
  */
-char*
+QString
 strip_nastyhtml(const QString& in)
 {
   char* returnstr;
@@ -1249,7 +1249,9 @@ strip_nastyhtml(const QString& in)
     *lcp = '*';
   }
   xfree(lcstr);
-  return (returnstr);
+  QString rv(returnstr);
+  xfree(returnstr);
+  return rv;
 }
 
 /*
@@ -1258,7 +1260,7 @@ strip_nastyhtml(const QString& in)
  *  pleasant for a human reader.   Yes, this falls down in all kinds of
  *  ways such as spaces within the tags, etc.
  */
-char*
+QString
 strip_html(const utf_string* in)
 {
 #if 0
@@ -1267,17 +1269,18 @@ strip_html(const utf_string* in)
   // or just say we don't do that any more.
   QTextDocument doc;
   doc.setHtml(in->utfstring);
-  return xstrdup(CSTR(doc.toPlainText().simplified()));
+  return doc.toPlainText().simplified();
 #else
+  if (!in->is_html) {
+    return in->utfstring;
+  }
+
   char* out;
   char* instr;
   char tag[8];
   unsigned short int taglen = 0;
 
   char* incopy = instr = xstrdup(in->utfstring);
-  if (!in->is_html) {
-    return instr;
-  }
   /*
    * We only shorten, so just dupe the input buf for space.
    */
@@ -1344,10 +1347,10 @@ strip_html(const utf_string* in)
     instr++;
   }
   *out++ = 0;
-  if (incopy) {
-    xfree(incopy);
-  }
-  return (outstring);
+  xfree(incopy);
+  QString rv(outstring);
+  xfree(outstring);
+  return rv;
 #endif
 }
 
diff --git a/vcf.cc b/vcf.cc
index c97b79f4d98e337d4560405a304513785c48a040..fb62ab1b62420e69703333ba2ade9791835544d1 100644 (file)
--- a/vcf.cc
+++ b/vcf.cc
@@ -64,9 +64,7 @@ vcf_print_utf(const utf_string* s)
     return;
   }
 
-  char *string = strip_html(s);
-  QString stripped_html = string;
-  xfree(string);
+  QString stripped_html = strip_html(s);
 
   stripped_html.replace("\n", "\\n", Qt::CaseInsensitive);
   stripped_html.replace("<p>", "\\n", Qt::CaseInsensitive);